package projetolp2.Tests;

import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import projetolp2.Sistem.GerenciamentoDeArquivos;

public class TestaGerenciamentoDeArquivos {
	
	@Before
	public void criaArquivo(){
		
		GerenciamentoDeArquivos.inicializaArquivos();
	}
	
	@Test
	public void testaLerArquivo() throws Exception{
		try{
			GerenciamentoDeArquivos.lerArquivo("opnioes_dos_usuarios.txt");
		}catch (Exception e){
			throw new Exception ("Leitura de arquivo falhou!");
		}
		
	}
	
//	@Test
//	public void testaEscreverArquivo() throws Exception{
//		
//		try{
//			GerenciamentoDeArquivos.escreveArquivo("A matutinha lanchonete", "estabelecimentos.txt",true);
//		}catch (Exception e){
//			
//			throw new Exception("Escritura de arquivo falhou!"); Este teste funciona, porém altera o funcionamento do programa pois substitui o conteudo do arquivo original! 
//		}
//		
//	}
	
	@Test
	public void testaGets() throws Exception{
		
		try{
			Assert.assertEquals("Nome de arquivo de estabelecimento errado!",GerenciamentoDeArquivos.getNomeArquivoEstabelecimentos(),"estabelecimentos.txt");
		}catch (Exception e){
			throw new Exception("Nome de arquivo de estabelecimento errado!");
		}
		
		try{
			Assert.assertEquals("Nome de arquivo de opinioes de usuarios errado!", GerenciamentoDeArquivos.getNomeArquivoUsuarios(), "opnioes_dos_usuarios.txt");
		}catch (Exception e){
			throw new Exception("Nome de arquivo de opinioes de usuarios errado!");
		}
	}
    
	@Test
	public void testaSets() throws Exception{
		
		try{
			GerenciamentoDeArquivos.setNomeArquivoEstabelecimentos("opinioes.txt");
			Assert.assertEquals("Nome de arquivo de estabelecimento mudado errado!",GerenciamentoDeArquivos.getNomeArquivoEstabelecimentos(),"opinioes.txt");
		}catch (Exception e){
			throw new Exception ("Nome de arquivo de estabelecimento mudado errado!");
		}
		
		try{
			GerenciamentoDeArquivos.setNomeArquivoUsuarios("lista_estabelecimentos_mealpoints.txt");
			Assert.assertEquals("Nome de arquivo de opinioes de usuario mudado errado!",GerenciamentoDeArquivos.getNomeArquivoUsuarios(),"lista_estabelecimentos_mealpoints.txt");
		}catch (Exception e){
			throw new Exception("Nome de arquivo de opinioes de usuario mudado errado!");
		}
	}
	
	@Test
	public void testaGravaCaminhoArquivo() throws Exception{
		
		try{
			GerenciamentoDeArquivos.gravaCaminhoArq("5: incrível", "opnioes_dos_usuarios.txt");
			Assert.assertEquals("Gravacao do caminho do arquivo falhou!",GerenciamentoDeArquivos.getNomeArquivoUsuarios(),"opnioes_dos_usuarios.txt");
		}catch (Exception e){
			throw new Exception("Gravacao do caminho do arquivo falhou!");
		}
	}

}
